/**
 * @copyright Copyright (c) 2025 CSG Digital Grid Technology (Guangdong) Co., Ltd.
 * @author Chen Yongjie
 */
#ifndef __TEST_CPU_H
#define __TEST_CPU_H

// 测试 get_cpu_info 函数的正常情况
void test_get_cpu_info_normal(void);

// 测试 get_cpu_info 函数在文件不存在的情况
void test_get_cpu_info_file_not_exist(void);

// 测试 get_cpu_info 函数对空指针的处理
void test_get_cpu_info_null_pointer(void);

// 测试 cal_cpu_used_rate 函数的正常情况
void test_cal_cpu_used_rate_normal(void);

// 测试 cal_cpu_used_rate 函数在 CPU 时间相同的情况
void test_cal_cpu_used_rate_same_time(void);

// 测试 cal_cpu_used_rate 函数在空闲时间增加的情况
void test_cal_cpu_used_rate_idle_increase(void);

// 测试 cal_cpu_used_rate 函数在用户时间增加的情况
void test_cal_cpu_used_rate_user_increase(void);

// 测试 cal_cpu_used_rate 函数在系统时间增加的情况
void test_cal_cpu_used_rate_system_increase(void);

// 测试 cal_cpu_used_rate 函数在所有时间同比例增加的情况
void test_cal_cpu_used_rate_proportional_increase(void);

// 测试 cal_cpu_used_rate 函数在时间溢出的情况
void test_cal_cpu_used_rate_overflow(void);

// 测试 cal_cpu_used_rate 函数在参数为空指针的情况
void test_cal_cpu_used_rate_null_pointer(void);

// 测试 cal_cpu_used_rate 函数在时间差为负数的情况
void test_cal_cpu_used_rate_negative_diff(void);

// 测试 cpu_scanDocker 函数在Docker输出格式异常的情况
void test_cpu_scanDocker_invalid_format(void);

// 测试 get_cpuUsage 函数的正常情况
void test_get_cpuUsage_normal(void);

// 测试 get_cpuUsage 函数在连续调用时的行为
void test_get_cpuUsage_continuous(void);

// 测试 cpu_scanDocker 函数在正常情况下的行为
void test_cpu_scanDocker_normal(void);

// 测试 cpu_scanDocker 函数在没有运行容器的情况
void test_cpu_scanDocker_no_containers(void);

// 测试 cpu_scanDocker 函数在 Docker 守护进程未运行的情况
void test_cpu_scanDocker_daemon_not_running(void);

// 测试 cpu_scanDocker 函数在内存分配失败的情况
void test_cpu_scanDocker_memory_allocation_failure(void);

// 测试 get_flashUsage 函数在正常情况下的行为
void test_get_flashUsage_normal(void);

// 测试 get_flashUsage 函数在命令执行失败的情况
void test_get_flashUsage_command_fail(void);

// 测试 get_flashUsage 函数在结果参数为NULL的情况
void test_get_flashUsage_null_parameter(void);

// 测试 get_flashUsage 函数在文件系统未挂载的情况
void test_get_flashUsage_unmounted(void);

// 测试 get_memUsage 函数在正常情况下的行为
void test_get_memUsage_normal(void);

// 测试 get_memUsage 函数在文件不存在的情况
void test_get_memUsage_file_not_exist(void);

// 测试 get_memUsage 函数在文件格式错误的情况
void test_get_memUsage_invalid_format(void);

// 测试 get_memUsage 函数在内存值异常的情况
void test_get_memUsage_invalid_values(void);

// 测试 get_cpu_info 函数在CPU热插拔情况下的行为
void test_get_cpu_info_hotplug(void);

// 测试 get_cpu_info 函数在CPU频率动态调整时的行为
void test_get_cpu_info_freq_scaling(void);

// 测试 cal_cpu_used_rate 函数在极端CPU使用率情况下的行为
void test_cal_cpu_used_rate_extreme_usage(void);

// 测试 cal_cpu_used_rate 函数在CPU状态快速变化时的行为
void test_cal_cpu_used_rate_rapid_changes(void);

// 测试 get_cpuUsage 函数在系统负载突变的情况
void test_get_cpuUsage_load_spike(void);

// 测试 cpu_scanDocker 函数在容器状态频繁变化的情况
void test_cpu_scanDocker_state_changes(void);

// 测试 get_flashUsage 函数在磁盘IO高负载的情况
void test_get_flashUsage_high_io(void);

// 测试 get_memUsage 函数在内存压力测试情况下的行为
void test_get_memUsage_stress(void);

// 测试 get_cpuUsage 函数在高负载情况下的行为
void test_get_cpuUsage_high_load(void);

// 测试 get_cpuUsage 函数在低负载情况下的行为
void test_get_cpuUsage_low_load(void);

// 测试 get_cpuUsage 函数在CPU频率变化时的行为
void test_get_cpuUsage_freq_change(void);

// 测试 get_memUsage 函数在大量内存分配和释放时的行为
void test_get_memUsage_allocation(void);

// 测试 get_memUsage 函数在内存压力下的行为
void test_get_memUsage_pressure(void);

// 测试 get_memUsage 函数在缓存清理后的行为
void test_get_memUsage_after_cache_clear(void);

// 测试 get_flashUsage 函数在大文件操作时的行为
void test_get_flashUsage_large_file(void);

// 测试 get_flashUsage 函数在频繁IO操作时的行为
void test_get_flashUsage_frequent_io(void);

// 测试 get_cpu_info 函数在多核CPU情况下的行为
void test_get_cpu_info_multicore(void);

// 测试 get_cpu_info 函数在CPU状态变化时的行为
void test_get_cpu_info_state_change(void);

// 测试 get_cpu_info 函数在CPU频率突变时的行为
void test_get_cpu_info_freq_spike(void);

// 测试 get_memUsage 函数在内存碎片化情况下的行为
void test_get_memUsage_fragmentation(void);

// 测试 get_memUsage 函数在swap使用时的行为
void test_get_memUsage_swap_usage(void);

// 测试 get_memUsage 函数在内存泄漏情况下的行为
void test_get_memUsage_memory_leak(void);

// 测试 get_flashUsage 函数在文件系统满载时的行为
void test_get_flashUsage_full_filesystem(void);

// 测试 get_flashUsage 函数在IO错误情况下的行为
void test_get_flashUsage_io_error(void);

// 测试 get_cpu_info 函数在CPU负载突然变化时的行为
void test_get_cpu_info_load_change(void);

// 测试 get_cpu_info 函数在CPU中断频繁发生时的行为
void test_get_cpu_info_interrupts(void);

// 测试 get_cpu_info 函数在CPU软中断处理时的行为
void test_get_cpu_info_softirq(void);

// 测试 get_cpu_info 函数在CPU上下文切换频繁时的行为
void test_get_cpu_info_context_switch(void);

// 测试 get_memUsage 函数在大页内存使用时的行为
void test_get_memUsage_huge_pages(void);

// 测试 get_memUsage 函数在NUMA节点间内存迁移时的行为
void test_get_memUsage_numa_migration(void);

// 测试 get_flashUsage 函数在文件系统碎片化时的行为
void test_get_flashUsage_fragmentation(void);

// 测试 get_flashUsage 函数在inode耗尽时的行为
void test_get_flashUsage_inode_exhaustion(void);

#endif /* __TEST_CPU_H */